import java.text.SimpleDateFormat;
import java.util.Calendar;

import com.jcraft.jsch.*;
//import java.io.*;

public class Descarga {
	
   public static void main(String[] args) {
	   
		if ( args.length != 5) {
		System.err.println("Uso: java Decarga servidor usuario pass origen destino");
		System.exit(-1);
		}
       
       String host = args[0];
       String username = args[1];
       String pass = args[2];
       String khfile = "/portanode/.ssh/known_hosts";
       String identityfile = "/portanode/.ssh/id_rsa";
       String forigen = args[3];
       String fdest = args[4];

       JSch jsch = null;
       Session session = null;
       Channel channel = null;
       ChannelSftp c = null;
       
       try {
           jsch = new JSch();
           session = jsch.getSession(username, host, 22);
           session.setPassword(pass);
           jsch.setKnownHosts(khfile);
           jsch.addIdentity(identityfile);
           session.connect();

           channel = session.openChannel("sftp");
           channel.connect();
           c = (ChannelSftp) channel;

       } catch (Exception e) { e.printStackTrace(); }

       try {
    	   System.out.println(fecha() + " Descargando archivo: " + forigen);
           c.get(forigen, fdest);
           System.out.println(fecha() + " Descarga completa.");
       } catch (Exception e) {
    	   System.out.println(fecha() + " ERROR - Ocurrio un error al descargar el archivo.");
    	   e.printStackTrace();
    	 }

       c.disconnect();
       session.disconnect();

       //Para generar el knowhosts: ssh jose@localhost (o ssh a la maquina deseada)
       //Para generar el id_rsa sin password : ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa

   }
	public static String fecha () {
		String fech = "";
		SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		
		Calendar cal1 = Calendar.getInstance();
	    fech = df.format(cal1.getTime());
	    return fech;
	}
}